System.Collections.Generic.HashSet<T> sınıfı

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

HashSet<T> sınıfı yüksek performanslı küme işlemleri sağlar. Küme, yinelenen öğe içermeyen ve öğeleri belirli bir sırada olmayan bir koleksiyondur.

Bir HashSet<T> nesnenin kapasitesi, nesnenin barındırabileceği öğe sayısıdır. HashSet<T> Nesneye öğeler eklendikçe nesnenin kapasitesi otomatik olarak artar.

HashSet<T> sınıfı matematik kümelerinin modelini temel alır ve veya Hashtable koleksiyonlarının anahtarlarına Dictionary<TKey,TValue> erişmeye benzer yüksek performanslı küme işlemleri sağlar. Basit bir ifadeyle HashSet<T> , sınıfı değer içermeyen bir Dictionary<TKey,TValue> koleksiyon olarak düşünülebilir.

Koleksiyon HashSet<T> sıralanmaz ve yinelenen öğeler içeremez. Sıralama veya öğe yinelemesi uygulamanız için performanstan daha önemliyse, sınıfını yöntemiyle Sort birlikte kullanmayı List<T> göz önünde bulundurun.

HashSet<T> set toplama (birleşimler) ve set çıkarma gibi birçok matematik kümesi işlemi sağlar. Aşağıdaki tabloda, sağlanan HashSet<T> işlemler ve bunların matematiksel eşdeğerleri listelenir.

HashSet işlemi Matematik eşdeğeri
UnionWith Birleşim veya küme ekleme
IntersectWith Kesişim
ExceptWith Çıkarma ayarla
SymmetricExceptWith Simetrik fark

Listelenen küme işlemlerine ek olarak, HashSet<T> sınıfı küme eşitliğini, küme çakışmasını ve bir kümenin başka bir kümenin alt kümesi mi yoksa üst kümesi mi olduğunu belirlemek için yöntemler de sağlar.

Yalnızca .NET Framework: Çok büyük HashSet<T> nesneler için, yapılandırma öğesinin özniteliğini <gcAllowVeryLargeObjects> çalışma zamanı ortamında olarak ayarlayarak enabled 64 bitlik bir sistemde maksimum kapasiteyi 2 milyar öğeye true artırabilirsiniz.

HashSet<T> sınıfı, ISet<T> arabirimini uygular.

HashSet ve LINQ kümesi işlemleri

LINQ, veya IQueryable arabirimlerini uygulayan herhangi bir veri kaynağında , Union, Intersectve Except ayarlama işlemlerine IEnumerable erişim Distinctsağlar. HashSet<T> daha büyük ve daha sağlam bir küme işlemleri koleksiyonu sağlar. Örneğin, HashSet<T> ve IsSupersetOfgibi IsSubsetOf karşılaştırmalar sağlar.

LINQ kümesi işlemleri ile HashSet<T> işlemler arasındaki birincil fark, LINQ kümesi işlemlerinin her zaman yeni IEnumerable<T> bir koleksiyon döndürmesi, eşdeğer yöntemlerin HashSet<T> ise geçerli koleksiyonu değiştirmesidir.

Genellikle, yeni bir küme oluşturmanız gerekiyorsa veya uygulamanızın yalnızca sağlanan küme işlemlerine erişmesi gerekiyorsa, herhangi bir IEnumerable<T> koleksiyon veya dizide LINQ kümesi işlemlerini kullanmak yeterli olacaktır. Ancak, uygulamanız ek küme işlemlerine erişim gerektiriyorsa veya yeni bir koleksiyon oluşturmak istenmiyorsa veya gerekli değilse sınıfını HashSet<T> kullanın.

Aşağıdaki tabloda işlemleri ve eşdeğer LINQ kümesi işlemleri gösterilmektedir HashSet<T> .

HashSet işlemi LINQ eşdeğeri
UnionWith Union
IntersectWith Intersect
ExceptWith Except
Sağlanmadı. Distinct
SymmetricExceptWith Sağlanmadı.
Overlaps Sağlanmadı.
IsSubsetOf Sağlanmadı.
IsProperSubsetOf Sağlanmadı.
IsSupersetOf Sağlanmadı.
IsProperSupersetOf Sağlanmadı.
SetEquals Sağlanmadı.